package co.edu.eam.laapuesta.ejb;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import co.edu.eam.laapuesta.persistencia.dao.ClienteDAO;
import co.edu.eam.laapuesta.persistencia.entidades.Direccion;
import co.edu.eam.laapuesta.persistencia.entidades.Empleado;
import co.edu.eam.laapuesta.persistencia.idao.ClienteIDAO;

@Stateless
@LocalBean
public class EmpleadoEJB {
	
	private ClienteIDAO clienteDAO;
	
	@PersistenceContext(name = "LaApuestaJPA")
	private EntityManager entityManager;

	public EmpleadoEJB() {
		super();
		// TODO Auto-generated constructor stub
	}
	@PostConstruct
	public void posConstructor(){
		clienteDAO=new ClienteDAO(entityManager);
	}
	
	
	@SuppressWarnings("unchecked")
	public List<Object>correrSQL(String consulta){
		Query q=entityManager.createNamedQuery(consulta);
		return q.getResultList();
	}
	
	public void registarEmpleado(int cedula,String nombre,String apellido,String password,String usuario,int telefono,Direccion direccion)throws Exception{
		Empleado x=buscarEmpleadoByCedula(cedula);
		if(x!=null){
			throw new Exception("El cliente con esta cedula ya esta registrado.");
		}else {
			Empleado c=new Empleado();
			c.setApellido(apellido);
			c.setCedula(cedula);
			c.setNombre(nombre);
			c.setDireccion(direccion);
			c.setPassword(password);
			c.setTelefono(telefono);
			c.setUsuario(usuario);
			clienteDAO.registrarEmpleado(c);
		}	
	}
	
	public void eliminarEmpleado(int id)throws Exception{
		Empleado x=buscarCliente(id);
		if(x==null){
			throw new Exception("El empleado no existe, verifique.");
		}else {
			clienteDAO.eliminarEmpleado(x);
		}
	}
	public Empleado buscarCliente(int id){
		return clienteDAO.buscarEmpleado(id);
	}
	public Empleado buscarEmpleadoByUsuario(String usuario){
		return clienteDAO.buscarEmpleadoByUsuario(usuario);
	}
	
	public Empleado buscarEmpleadoByCedula(int cedula){
		return clienteDAO.buscarEmpleadoByCedula(cedula);
	}
	
	public List<Empleado>listarEmpleados(){
		return clienteDAO.listarEmpleados();
	}
}
